iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0
自我挑戰組

Identity Management 系列 第 30

30 - OIDC Hybrid Flow: request & response

  • 分享至 

  • xImage
  •  

17 - OpenID (5) - OIDC Hybrid Flow

https://ithelp.ithome.com.tw/upload/images/20220928/20116003WZZJ0Tvahf.png

這個 flow 和 OIDC Authorization Code Flow 主要的差別在於 step 2 可以指定回傳的內容

Step 2

Client 將使用者導向 OpenID provider,其 url params 如下

GET /authorize?response_type=xxx
&client_id=xxx
&nonce=xxx
&state=xxx
&scope=xxx
&redirect_uri=xxx
  • response_type: 這裡的值如果為
    • "code id_token",代表 step 5 會回傳 Authorization code 和 ID token
    • "code token",代表 step 5 會回傳 Authorization code 和 access token
    • "code id_token token",代表 step 5 會回傳 Authorization code, access token 和 ID token
  • client_id: 在 OpenID provider 所登記的 Client 的 ID
  • nonce: 一個隨機值,之後會被放在 ID token 當中回傳給 Client
  • state: 當中包含了 Client 當前的狀態資訊,之後會用來比對 OpenID provider response 當中的 state 以確保前後一致
  • scope: 代表這個請求所想要取得的使用者資訊,譬如 "openid profile email"
  • redirect_uri: 在 step 5 OpenID provider 將使用者導回到 Client 時的 url

Step 5

在使用者輸入帳號密碼,驗證身份完畢之後 (step 3 & 4),OpenID provider 的回應如下

https://client_redirect_uri/callback

?code=xxx
&state=xxx
&id_token=xxx

是否回傳 code 或 id_token,就端看在 Step 2 的設定

之後, Step 6 & 7 就和 OIDC Authorization Code Flow 的內容相似


上一篇
29 - OIDC Implicit Flow: request & response
下一篇
Day 30 again
系列文
Identity Management 31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言